讲师专访丨21CN成思敏:优秀DBA必备的技能和素养和云数据库运维
由云和恩墨主办的「DTC之数据库技术实战线上峰会」每周四都会邀请业内外技术大咖进行一小时的线上主题分享。本期,我们邀请到了21CN DBA主管、技术专家、数据库架构师成思敏老师,带来题为《云数据库反脆弱性运维体系》的分享,活动信息如下:
演讲时间:2019年5月30日 20: 00-21: 00(含5分钟答疑)
演讲形式:直播、线上分享、PPT+演讲
报名地址:t.cn/E909n7o
平台支持:云平台(cs.enmotech.com)
关于DTC:Data Technology Carnival,数据技术嘉年华
TIPs:
请提前五分钟进场;
加入云时代数据运维微信社群方式见文末;
活动客服:Enmoedu05
走向成功的道路从来都不是一帆风顺的,但成功者往往具有某些相似的特征。在演讲开始之前,我们DTC线上峰会组织者采访了成老师,请她分享了15年的DBA成长之路,以及是如何迎接新技术的挑战、日复一日的学习策略,进而完成职业生涯的进阶,成长为技术专家、数据库架构师、公司DBA主管。
21CN DBA主管、技术专家、数据库架构师 成思敏
15年数据库工作经验,擅长诊断数据库故障、数据库调优、迁移等;擅长云数据库的架构设计,故障诊断与调优技术,精通数据库运维自动化产品设计,对数据库自动化运维有深刻的理解,并且积累了大量的工作经验。参与公司数据库相关的标准制定,大型项目规划等。超大型数据库的迁移与支撑,擅长培训与培养人才。专利申请5个(已授权1个)。
演讲主题:《云数据库反脆弱性运维体系》
演讲介绍:构建反脆弱性的云数据库服务体系与实践,实现分布式云数据库服务的高可用方案,同时采取措施保护分布式云数据库整体服务,实现跨机房分布式自动切换方案,并在实践过程中,实施分享SQL自动发布,实现0误操作,有效保障云数据库服务的同时,提高了DBA及研发人员的效率,并完成有效数据库评价,实现完整的反脆弱数据库服务保障体系。
面向人群:数据库领域从业者、爱好者,希望深入了解云数据库的运维、开发、架构师、技术经理、项目经理等。
以下为采访正文:
使命、责任感驱使我不断学习
DTC:请先和大讲堂的用户介绍一下您,以及您感兴趣的技术是?
A:大家好,我是21CN成思敏,对数据库技术持久产生热情的老牌DBA,很高兴与大家分享数据库知识与经验,我是从ORACLE技术成长起来的,因为不断有项目的需要,开始去ORACLE,及对新型数据库的管理,解决各种数据库与中间件相关问题。因为公司DBA团队不断壮大,就培训与培养新人。作为非常重量级DBA盛会的DTCC讲师,我很荣幸。今天能在恩墨大讲堂与大家分享经验,我也非常荣幸,非常开心。与数据库相关的话题我都比较感兴趣。
DTC:有句耳熟能详的的话是“做数据,就是场修行,其乐趣就在于它永无止镜”,为何选择数据库这个领域?您认为是什么使您深深地投入这个领域的?
A:“做数据,就是场修行,其乐趣就在于它永无止镜”,对DBA来说很贴切。数据库是一门艺术,解决不了问题,性能优化不了,那是相当痛苦的,但是一但解决问题,那种成就感与艺术家没区别。很多年前,因为项目需要,我负责的项目中有数据库,为了做好项目,去初步了解并做了数据库的测试实验,查找相关的资料,发现真是一个深似海的天地,于是才决心投入到数据库这行业中来了。
DTC:各种新技术层出不穷,怎么掌握技术的趋势?以及您个人是如何学习新技术的?
A:其实每个人精力是有限的,对于新技术趋势的话,DB-Engines(https://db-engines.com/en/ranking)上面的信息面比较多,我经常分析与参考上面的信息;技术资讯网如CSDN、51CTO、开源中国、GitHub、ITPUB等;另外,经常看些论文、专利文章(国外比较少,有机会我还想多阅读下国外的巨头公司及高校论文),还有行业大会也非常重要。
新技术越来越多,首先是需要看公司的需要,挑些公司可能需要的数据库技术,首先搜索这种技术的实践情况(公司落地、网友技术分享),另外就是快速阅读官方文档,进一步真实了解该技术到底可以做什么有什么缺陷等,然后就是实践。
DTC:您如今,每天负责公司的DBA团队,也需要不断的学习新技术,以及大量的人才培养等,事情比较多,在时间安排上您什么心得和体会可分享?
A:其实之前上班时间根本没有学习时间。因为使命、责任感,必须让自己提高已成为一种习惯。每天有几个时间点我抓得比较紧:
早晨6点左右,起来之后速度看书40分钟
提前半小时以上到公司(看书及资料)
利用中午一小时(一个半小时午休,半小时吃饭)学习,
周末也利用一部份时间
思考常常是在深夜,每天都会积累很多的问题,并在深夜常常获得灵感,得到答案。
开始是强迫自己的,几年后发现不学不自在(自我认为不学习自己就变俗气了)。数据库虽然是门艺术,但责任感让人想问题更多些,成长就非常快了。
DTC:能否回顾一下自己的职业之路,谈一谈毕业后这些年在工作中的收获和体验,以及职业路上的故事?
A:我所得的荣誉是来自于DBA,所得益的也是因为从事DBA,以DBA为荣,虽然经历的都是挫折、坎坷与挑战:
2010年公司有一个Oracle核心系统性能不稳定,我曾经连续奋战三天两夜,中间也只休息了半小时
2012年,为了数据库的稳定性,出差27天(日夜都在分析与解决问题)
2013年冬天为了异构,不论天寒地冻、不分昼夜,连续三四个月与研发讨论、交涉、博弈、分析
2016年春节,有春节红包活动,我有事请假不能在现场,但即使在路上,一小时一停车去与研发及团队沟通问题,并提供思路等
……
优秀DBA需要掌握的技能与素养
DTC:DBA,DBA是英文Database Administrator的简称,也就是数据库管理员,是负责维护和管理数据库服务器的专业技术人员,您有着15年数据库工作经验,现在作为DBA主管、数据库架构师,您对DBA的理解是?以及您认为DBA需要什么样的技能和素养?
A:数据库管理员,是需要关注数据,也需要关注库,即需要关注数据与服务,要关心如何操作数据库(程序),从而来保障好数据库。DBA是一个系统架构项目产品的核心保卫战士,有很高的话语权。但这就要求DBA不要只做好数据及库的事,更重要的是需要理解产品,需要知道系统特征,从而才能更容易把问题分析透彻,根本上解决系统的表面问题。
个人认为DBA需要掌握的技能与素养有这几个方面:
1. DBA应该是一个系统的运维工程师,了解数据库所掌握的操作系统(操作与调优)
2. 所负责的数据库项目相关所有的特征,了解性能峰值及业务增长
3. 数据库本身,维护相关的如部署,调优,备份,恢复,迁移,升级,巡检等基本能力
4. 理解监控,对监控的每项语义明了并不断优化监控
5. DBA需要事中应急的技能,应急就是保障业务的连续性(如自动切换的能力),故障的快速诊断,快速修复数据,快速恢复数据
6. DBA需要有危机意识,把自己所负责的数据库相关的问题,能想多少就想多少,不断平时发现问题,从而不断提高技能的同时,更多的是为保障提供业务技术与服务
7. 一个好的DBA,是不断的实验,实验再实验的,既是对系统的演练,更是对自己技能的演练,这样才能速度提高自己的水平。(我记得,初始为DBA时,我一天可能实验有超过每天五六小时)
作为职场中人,我们都需要生存。我们很多人,都是被人管理,也有管理人的,从管理角度上(我自学了很多年MBA等管理相关专业等),我们需要了解公司需要做什么,我们如何去做符合项目的事(这个课题请大家以不同的方式思考),如何才能做一个超过DBA本身的事,做符合公司价值观的工作,而不是闷着头一直做。只有符合公司价值观的工作,才能真正使我们成长。即使我们做对了一件数据库恢复的事,也是体现公司价值的一部份,我们也是了不起的。但其实要想自己职场中发展,更多的是做好本职工作同时,更需要创新的思路,这对公司与自己都很重要。
DTC:运维DBA和开发DBA相通和区别的地方是?
A:DBA无论是运维DBA还是研发DBA从本质上都是来解决保障数据库问题,从而支撑项目可落地,可健康运营的目的。运维DBA比较靠表面一些,运维DBA是施工、调优、监控、更新、备份恢复等从系统的层面来保障业务的,研发型DBA主要从研发及功能与性能设计的角度上,对数据库表、字段、数据、SQL等设计的方向去让产品匹配系统的,是基于数据库与项目的点不同但都是解决同一项目。
DTC:大数据/云计算时代,给DBA带来了哪些新的挑战?
A:大数据/云计算时代已来临好多年了,市场逐渐成熟,DBA做精数据库已很难做到了。现在大家都不是一直看着Serverless方向发展了吗?DBA需要懂得更多。无疑,关系型数据库还是主流,但业务逐渐有不少方案选择NoSQL等类型;NoSQL类型,往往是无维护模式的(即有集群,表模型很简单),调优常常是研发的事,在这种调优,除了参数调优之外,传统DBA往往无很多事可做,但故障来了,却又很难解决(解决往往也需要研发来解决),主要是因为对NoSQL的不熟练,及很多NoSQL类型数据库其实并没有传统数据库成熟,资料也不够多等,DBA经历不够,而比较被动;
云计算上数据库实例和业务过多,而DBA如何和之前一样优化好、监控好、保障好,这个挑战很大的,产品用户体验已成为企业竞争力的一个核心要素,而业务大、质量要求更高,对DBA保障业务更是一个挑战。
DTC:DBA通常会遇到技术、职场等多角度的瓶颈,于您而言是否有那么历经困苦突破之后的事情?
A: 可能平时我想问题比较多吧,不想一直闷着做事,因为我知道,一直做下去,就跟个工人没两样。所以,我需要去不断突破自己。仅做部署、备份、恢复等是不够的,因此,在实验之余,考证书是我第一个想到的。选择了OCM的考试,第一,主要是想知道整个Oracle有什么,我如何掌握技术核心;第二是掌握后,我可以能够担负公司更重要的项目及任务,顺便对自己知识优化等。
另一个是云计算与大数据来了之后,要去IOE,我辛苦花好多年学来的东西要去掉,虽然不是从0开始,但又得重新从0开始,不断适配公司要求的技能是我们必须每天要做的事吧,无论是不是DBA,市场、公司需要什么,我们都得做吧。所以,就开始转型做分布式、NoSQL类的数据库研究与测试等工作,速度转型。
我现在还在转型与学习中,有更多的难题(在平时思考中获得的,及公司所遇到的),需要突破自我(调整技术结构,了解技术能力,识别技术可行性,技术价值落地等),需要更强大,帮公司成就项目,找合适的主题与命题给团队让团队更加健壮的成长,当个很好的螺丝钉。这个是我每天在做与想的问题。
云数据库的运维新挑战
DTC:新的框架层出不穷,例如数据存储领域的发展,从文件、关系型数据库、NoSQL 数据库、分布式数据库等,五花八门的新技术,有些是昙花一现而有些则变成主流选择。何时引入新工具和引入哪种新工具提高生产力,就变成了一个考验眼光的技术活儿。有时候存在一种是为了引入而引入么的情况,小公司没有历史包袱,新技术对他们诱惑力很大,对此您有什么经验可分享?
A:对于新技术的选择,我们压力比较大,因为有质量及故障考核,这是一个矛盾;技术创新与质量要求的考核,有时候也是一种制约。但作为公司来讲,是鼓励创新的,公司更要求稳定中求发展。一般树立命题,是题目评审-技术调研测试-部门内分享结果,这特别要让研发知道。需要推广新技术落地时,需要评审技术落地的理由,然后作为储备技术,当有项目场景需要时拿出来再用。
DTC:云数据库悄无声息地已到来,可否分享下数据库的发展历程,以及具体介绍下云数据库?其和传统数据库有着怎样的区别?
A:云数据库离不开云计算,云数据库是建立在虚拟机上为基础的,带有云计算的特征、共享、弹性、智能。传统的数据库拿Oracle来讲,本身是比较重的,安装部署都是个重型的工程。云数据库轻巧,有更多解决方案,能组建更多的架构(自动切换、读写分离、分布式、数据中心多活);传统的数据库可选的不多。云数据库更是利用了云计算强大的全栈技术能力,更是有了共享数据的能力,同时可以随意实施主机热迁移的能力(快速迁移)。
类别 | 云数据库 | 传统数据库 |
主要数据库 | 以RDS(MySQL)为主 | 以Oracle为主 |
安全性 | 云计算已安全保障了大部分安全 | 安全性比较严重 |
性能 | 单实例性能不高 | 单实例高性能 |
数据量 | 单实例不能数据量过大 | 可以支撑大数据量 |
迁移 | 不影响服务,秒级切换(集群或从库) | 迁移是个大工程,切换教久 |
并发性 | 分布式构建容易,解决存储IO | 存储瓶颈较难解决 |
连续性 | 高可用、联系性好 | 切换较慢,关注数据一致性 |
服务 | 分布式构建,局部失败,多种连续性解决方案 | 过于集中化 |
对DBA要求 | 需要综合使用工具的能力 | 需要专业的调优能力 |
云数据库与传统数据库比较
DTC:云数据库服务运维体系需要注意哪些问题?
A:云数据库服务,是服务就会出问题,必须转换的思路(数据库单服务实体不能影响整个系统,坚持故障无害思路,不要相信单节点的能力)。
在基于整体架构的基础上,把每个问题点列出来,持久频繁演练,制定出自己适配运维方式,才能有问题不会慌乱;另外,云数据库一式三分(主、备、异地备,不要去相信任何一个单节点的服务与数据),同时,在每份备份上,有逻辑备份,这样才能长治久安。云服务自动化运维能力非常重要,让系统管理数据库,而不是让人去管理数据库,这样的思路理念。人的操作代价是极高的,操作有限,水平有限,操作数量有限,因此,一定需要按照系统解决系统的思路来走。
问题项 | 问题描述 |
“问题”SQL增多 | 非高并发的INSERT都可能成为慢查询 |
SQL不稳定执行 | 执行计划会变化 |
监控不准 | 虚拟机本身没问题的情况下,性能有问题 |
云数据库服务剧增 | 实例过多,DBA不能只关注个别实例 |
中间件增多 | 需要研发实例来支撑中间,频繁更新 |
中间件问题多 | 理论上的分布式数据库,中间件是瓶颈“咽喉”,仍然是中心化类的数据库 |
架构过高,中间损耗大 | 中间件与MySQL单个性能都不是很高,基于资源有些浪费 |
云计算资源池过于集中 | 过多的服务互相影响,存储级别的问题排查困难 |
跨机房系统增多 | 专线与公网影响整套系统的稳定性与RTT的返回速度 |
排查问题难 | 基于不可控的问题多,排查问题相对困难,“无头案”增多 |
云数据库服务运维体系存在问题特征
DTC:可否介绍下21CN的云数据库服务情况?
A:云数据库已是21CN做项目的标准,不再提供传统数据库服务,之前未迁移上云的项目继续完成(个别项目);而有个转变是,之前云数据库经常用的SATA、SAS磁盘,现在逐渐使用SSD等高性能的硬件存储做为云项目的标准。还有,我们的业务也越来越多了,挑战每天都有,不过,我们蛮有信心与信念做好的。
DTC:本期您分享的云数据库服务脆弱性是什么?为什么关注这个事情?
A:脆弱性往往在系统上讲指安全性,不堪一击,这里的脆弱性指与数据库服务相关的所有质量属性问题:故障、服务失败、同步失效、数据恢复、同步不一致、数据有效性、成本可控性,凡是命中在数据库上所有的问题都属于脆弱性。因为往往表面发生在了数据库上面,但往往是别的原因,因为云数据库属于PaaS,并且可选择的数据库类型虽然多,但问题也会多起来。
DTC:某一项新技术/趋势的诞生,往往技术图书很快出来,可否推荐一些云数据运维的优质图书给大家?
A:这个需要结合云计算及运维及数据库相关的资料结合起来才可以:《分布式数据库系统原理(第3版)》、《SRE:Google运维解密》、《AWS云计算实战》等很多,一般我是看几家公司比较多些:Google、AWS、微软等这些工程师写的,我经常也直接把当当也当知识库了,需要什么类型的资料,搜相关的书,看大纲内容,理解思路等。
关系型数据库依旧主流,未来也是主流
DTC:对从事DBA行业的人的人,您有什么对他们说的话?
A:DBA是门职业,也是一种荣誉,DBA站在自己的角度,守护自己的系统同时,时刻传递数据库服务价值(不要闷着头去工作),让公司走得更好,也才能自己走得更远。
DTC:以您多年丰富的工作经验,您如何看未来数据库技术的发展和趋势?
A:应用数据应用越广泛,数据库就会被用得越来越多,数据库越来越智能与灵活。关系型数据库依旧主流,未来也是主流。多模数据库类型发展迅猛,原生数据库的思路是一个亮点,(SQL与NoSQL较完美的结合,前端SQL后端NoSQL);另外,数据库集群组件越来越好,如RAFT、PAXOS协议的相关应用。
DTC:能否谈一下您和云和恩墨大讲堂的渊源?以及对大讲堂有什么建议?
A:云和恩墨公司当初我就知道的,当初我也是看盖老师的技术博客(https://www.eygle.com/)成长起来的,重量级的DBA都在这里云集,令人看到数据库持续有人往下走的希望与力量。
希望大讲堂能够像网易公开课一样,话题多、专业性强、趣味,有时候可能讲下数据库发展历史的牛人奇人奇事等,让更多的人参与等。
采访记者:陈一宁(yining.chen@enmotech.com)
采访报道和演讲报名敬请联系
云时代数据库运维微信交流群已建立,群满100人后请添加工作人员微信:Enmoedu05,备注姓名+公司+职位+云数据库,和盖国强、成思敏等专家一起碰撞技术的火花。